package com.sia.springcloud.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @Author: Sirius
 * @Date: 2021/3/5 9:37
 * @Description:
 **/
public class DateUtils {
    /**
     * 将字符串转化为时间类型
     *
     * @param time
     * @return
     */
    public static Date stringToDate(String time) {

        Date date = null;
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        dateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");
//        dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));//这里不需要设置时区，因为前面已经设置好了
        try {
            date = dateFormat.parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    /**
     * 将时间类型转换成固定格式的字符串
     *
     * @param date
     * @return
     */
    public static String dateToString(Date date) {
        SimpleDateFormat dateFormat = new SimpleDateFormat();
        dateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");
        return dateFormat.format(date);
    }

    /**
     * 将时间类型转换成固定格式的字符串，并减去8小时
     *
     * @param date
     * @return
     */
    public static String dateToString8(Date date) {
        //首先将时间都提前8小时
        Calendar instance = Calendar.getInstance();
        instance.setTime(date);
        instance.add(Calendar.HOUR_OF_DAY,-8);
        Date date1 = instance.getTime();


        SimpleDateFormat dateFormat = new SimpleDateFormat();
        dateFormat.applyPattern("yyyy-MM-dd HH:mm:ss");
        return dateFormat.format(date1);
    }

    /**
     * 将时间类型转换成固定格式的字符串
     *
     * @param date
     * @return
     */
    public static String dateToFIleName(Date date) {
        SimpleDateFormat dateFormat = new SimpleDateFormat();
        dateFormat.applyPattern("yyyy-MM-dd-HH-mm-ss");
        return dateFormat.format(date);
    }

}
